package com.xinggq.pay.service.pay.channel.yse.other.refund.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import java.math.BigDecimal;
import lombok.Data;

/**
 * 退款参数
 * @Description
 * @Author xinggq
 * @Date 2025/9/12
 */
@Data
public class YseRefundParamDTO {

  /**
   * 支付平台退款订单号
   */
  @NotBlank(message = "支付平台退款订单号不能为空")
  private String tradeNo;
  /**
   * 支付渠道退款订单号
   */
  @NotBlank(message = "支付渠道退款订单号不能为空")
  private String channelTradeNo;

  /**
   *  商户侧退款单单号
   */
  @NotBlank(message = "商户侧退款单单号不能为空")
  private String merchantOutTradeNo;
  @NotBlank(message = "原商户单号不能为空")
  private String payMerchantOutTradeNo;

  /**
   * 支付方式(NATIVE/JSAPI/APP等)
   */
  @NotBlank(message = "支付方式不能为空")
  private String payWay;

  /**
   * 支付渠道支付订单号
   */
  @NotBlank(message = "支付渠道支付订单号不能为空")
  private String payTradeNo;
  @NotBlank(message = "退款原因不能为空")
  private String refundReason;
  @NotNull(message = "退款金额不能为空")
  @DecimalMin(value = "0.01", message = "退款金额必须大于0")
  private BigDecimal refundAmount;

}
